package cn.tedu.csmall.product.service.impl;


import cn.tedu.csmall.product.ex.ServiceException;
import cn.tedu.csmall.product.mapper.AttributeTemplateMapper;
import cn.tedu.csmall.product.pojo.dto.Attribute_templateAddNewDTO;

import cn.tedu.csmall.product.pojo.entity.AttributeTemplate;
import cn.tedu.csmall.product.pojo.vo.AttributeTemplateStandardVO;
import cn.tedu.csmall.product.web.ServiceCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.tedu.csmall.product.service.IAttribute_templateService;
@Slf4j
@Service
public class Attribute_templateServiceImpl implements IAttribute_templateService {

    @Autowired
    AttributeTemplateMapper attributeTemplateMapper;

    public Attribute_templateServiceImpl() {
        System.out.println("创建业务实现类对象：+Attribute_templateServiceImpl");
    }

    @Override
    public void addNew(Attribute_templateAddNewDTO attributeTemplateAddNewDTO) {
        // 从参数albumAddNewDTO中获取尝试添加的相册名称
        String name = attributeTemplateAddNewDTO.getName();
        // 检查此相册名称是否已经存在：调用Mapper对象的countByName()方法，判断结果是否不为0
        int count = attributeTemplateMapper.countByName(name);
        if (count != 0) {
            throw new RuntimeException();
        }
        // 是：名称已存在，不允许创建
        // 否：名称不存在，则执行创建
        // 创建AttributeTemplate对象
        AttributeTemplate attributeTemplate = new AttributeTemplate();
        // 将参数DTO中的数据复制到AttributeTemplate对象中
        BeanUtils.copyProperties(attributeTemplateAddNewDTO, attributeTemplate);
        // 调用Album对象的setName()方法来封装数据：来自参数albumAddNewDTO
        //album.setName(albumAddNewDTO.getName());
        // 调用Album对象的setDescription()方法来封装数据：来自参数albumAddNewDTO
        //albumAddNewDTO.setDescription(albumAddNewDTO.getDescription());
        // 调用Album对象的setSort()方法来封装数据：来自参数albumAddNewDTO
        // albumAddNewDTO.setSort(albumAddNewDTO.getSort());
        // 调用Mapper对象的insert()方法，插入相册数据
        attributeTemplateMapper.insert(attributeTemplate);
    }
    @Override
    public void delete(Long id){
        log.debug("开始【处理相册】的义务参数为={}",+id);
        AttributeTemplateStandardVO queryResult = attributeTemplateMapper.getStandardById(id);
        if (queryResult==null){
            String message =  "删除相册失败，尝试访问的数据不存在！";
            log.warn(message);
            throw new ServiceException(ServiceCode.ERR_NOT_FOUND,message);
        }
        log.debug("即将删除数据...");
        attributeTemplateMapper.deleteById(id);
        log.debug("删除相册，完成!");
    }
}


